#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <fstream>
#include <iostream>
#include <string>
#include <QMenuBar>
#include <QToolBar>
#include <QTextEdit>
#include <QFileDialog>
#include <QDebug>
#include <QStatusBar>
#include <QAction>
#include <QLabel>
#include <QDockWidget>
#include  <QPushButton>
#include <QRandomGenerator>
#include <QDialog>
#include <QMessageBox>
#include <QColorDialog>
#include <QInputDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
//    ui->setupUi(this);
//    QMenuBar* menu_bar = new QMenuBar(this);
//    //将菜单栏添加到窗口中
//    this->setMenuBar(menu_bar);
//    // 创建菜单
//    QMenu* menu = new QMenu("⽂件");
//    menu_bar->addMenu(menu);
//    // 创建菜单项
//    QAction* action1 = new QAction("保存");
//    QAction* action2 = new QAction("加载");
//    menu->addAction(action1);
//    menu->addAction(action2);

//    edit = new QTextEdit(this);
//    this->setCentralWidget(edit);
//    edit->setPlaceholderText("此处编写⽂本内容...");

//    connect(action1,&QAction::triggered,this,[&](){
//        qDebug() << "open dialog";
//        //弹出对话框 选择写入文件的路径
//        QFileDialog* dialog = new QFileDialog(this);
//        QString file_name = dialog->getSaveFileName(this,"保存文件","Z:/test/");


//        //写入文件
//       std::ofstream file(file_name.toStdString().c_str());
//       if(!file.is_open())
//       {
//           qDebug() << "open fail" << endl;
//           return;
//       }
//       //获取编辑区的文本 写入到文件中
//       const QString& text = edit->toPlainText();
//       file << text.toStdString();
//       file.close();
//    });
//    //加载文件s
//    connect(action2,&QAction::triggered,this,[&](){
//        qDebug() << "open dialog";
//        QFileDialog* dialog = new QFileDialog(this);
//        qDebug() << "open dialog";
//        QString file_name = dialog->getSaveFileName(this,"加载文件","Z:/test/");

//        //读取文件
//        std::ifstream file (file_name.toStdString().c_str());
//        if(!file.is_open())
//        {
//            qDebug() << "open fail" << endl;
//            return;
//        }
//        std::string content;
//        std::string line;
//        while (std::getline(file,line)) {
//            content += line;
//            content += "\n";
//        }
//        file.close();

//        QString text = QString::fromStdString(content);
//        edit->setPlainText(text);
//    });
    resize(800,600);
//    //添加工具栏
//    QToolBar* toolbar1 = new QToolBar(this);
//    QToolBar* toolbar2 = new QToolBar(this);
//    //允许移动
//    this->addToolBar(toolbar1);
//    toolbar1->setMovable(true);
//    //不允许移动
//    this->addToolBar(toolbar2);
//    toolbar2->setMovable(false);
//    QAction* action1 = new QAction("保存");
//    toolbar1->addAction(action1);

//    //创建状态栏
//    QStatusBar *statusbar = new QStatusBar(this);
//    //将状态栏添加到窗口中
//    this->setStatusBar(statusbar);
//    //在状态栏中显示永久信息
//    QLabel * label = new QLabel("Hello QT!!!",this);
//    //将label添加到状态栏中
//    statusbar->addPermanentWidget(label);


//    //创建浮动窗口
//    QDockWidget* dockwidget = new QDockWidget(this);
//    //将浮动窗口置于当前窗口
//    addDockWidget(Qt::BottomDockWidgetArea,dockwidget);
//    //只允许上下停靠
//    dockwidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);


//    //点击按钮 创建非模态对话框
//    connect(pushbutton,&QPushButton::clicked,this,[&](){
//        QDialog *dlg = new QDialog(this);
//        //对话框大小重置为200*200
//        dlg->resize(200,200);
//        //设置 Qt:WA_DeleteOnClose 属性
//        dlg->setAttribute(Qt::WA_DeleteOnClose);
//        dlg->setModal(true);
//        //对话框以模态对框的形式显示
//        dlg->show();
//    });



//    // 创建消息对话框并用
//    QSharedPointer <QMessageBox> messagebox (new QMessageBox(this));
//    //设置对话框标题
//    messagebox->setWindowTitle("Warning Message");
//    //设置对话框内容
//    messagebox->setText("Error Message");
//    //设置对话框消息类型
//    messagebox->setIcon(QMessageBox::Question);
//    //在对话框上添加按钮
//    messagebox->setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);

//    connect(pushbutton, &QPushButton::clicked, [&messagebox]() {
//        messagebox->show();
//    });


//    //创建颜色对话框
//    QColorDialog* colordialog = new QColorDialog(this);

//    connect(pushbutton, &QPushButton::clicked, [colordialog]() {
//        //设置对话框的颜色
//        colordialog->setCurrentColor(QColor(255,100,190));
//        colordialog->open();
//    });


//    QPushButton* pushbutton = new QPushButton("QColorDialog", this);
//    QFileDialog* filedialog = new QFileDialog(this);

//    connect(pushbutton, &QPushButton::clicked, [=]() {

//        QString filename = filedialog->getOpenFileName(this,
//                                                       "文件",//设置对话框标题
//                                                       "D:",//设置默认打开路径
//                                                       "*.jpg" //中保留jpg文件
//                                                       );
//        qDebug() << filename;
//    });

//    QPushButton* pushbutton_save  = new QPushButton("Save File", this);

//    pushbutton_save->move(100,100);

//    QFileDialog* filedialog = new QFileDialog(this);

//    connect(pushbutton, &QPushButton::clicked, [=]() {

//        QString filename = filedialog->getSaveFileName(this,
//                                                       "文件",//设置对话框标题
//                                                       "D:",//设置默认打开路径
//                                                       "*.jpg" //中保留jpg文件
//                                                       );
//        qDebug() << filename;
//    });

    QPushButton* pushbutton  = new QPushButton("Input", this);
    //创建输入框
    QInputDialog* inputdialog = new QInputDialog(this);
    connect(pushbutton,&QPushButton::clicked,[=](){
        QStringList items;
        //添加条目
        items << tr("2020") << tr("2021S");

        QString item = inputdialog->getItem(this,"input","item",items);

    });
}


MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::save()
{

}

void MainWindow::load()
{

}

